#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
using namespace std;

#include "priority_queue.h"

void BigHeap_test()
{
	int a[] = { 3, 4,2,1,5 };
	wj::priority_queue<int> q(a, a + 5);

	while (!q.empty())
	{
		cout << q.top() << " ";
		q.pop();
	}
	cout << endl;
}

void SmallHeap_test()
{
	int a[] = { 3, 4,2,1,5 };
	wj::priority_queue<int, vector<int>, greater<int>> q(a, a + 5);

	while (!q.empty())
	{
		cout << q.top() << " ";
		q.pop();
	}
	cout << endl;
}

void Date_test()
{
	wj::priority_queue<wj::Date> q;
	q.push(wj::Date(2023, 7, 20));
	q.push(wj::Date(2023, 8, 20));
	q.push(wj::Date(2023, 7, 22));

	while (!q.empty())
	{
		cout << q.top() << " ";
		q.pop();
	}
	cout << endl;
}

int main()
{
	BigHeap_test();
	SmallHeap_test();
	Date_test();
	return 0;
}